#ifndef SERIAL_INFO_H
#define SERIAL_INFO_H
#include <QtSerialPort/QSerialPort>
#include <QtSerialPort/QSerialPortInfo>
#include <QStringList>
#include <QObject>
#include <QDebug>
#include <QMessageBox>

class SerialClass : public QObject {
    Q_OBJECT
public:
    SerialClass();
    ~SerialClass();

    QStringList serialPortList;

    void CloseSerial();
    void SendData(QByteArray &sendData);
    QByteArray hexStringToByteArray(QString HexString); // 将16进制字符串转换为对应的字节序列
    QByteArray GetReadBuf();
    void ClearReadBuf();
private:
    QSerialPort *serial_port_ptr;
    QByteArray readBuf;
signals:
    void readSignal(const QByteArray res); // 当下位机中有数据发送过来时就会触发这个信号，以提示其它类对象
    void scanResult(const QStringList &strList);
public slots:
    void readData(); // 读取下位机发来数据
    void ScanSerial();
    // 串口相关操作函数
    void OpenSerial(QString serialName, int baudRate,
                    int _databit, int _parity,
                    int _stopbit);
};
#endif // SERIAL_INFO_H
